<?php 
/**
 *  Por Federico Pisarello - SisDev Software (c) 2012 - Buenos Aires, Argentina.
 * 	fpisarello@sisdevsoft.com
 */

require("includes/funciones.inc.php");

session_start();
if(!isset($_SESSION['userName']))
	exit();

function searchCampanna()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");

	$datatables = new Datatables();

	$datatables
			->select('aud_campanias.idCampania, aud_campanias.descripcion descCampannas, aud_productos.descripcion descProducto, aud_agencias.descripcion descAgencia')
			->from('aud_campanias')
			->join('aud_productos', 'aud_productos.idProducto = aud_campanias.idProducto', 'inner')
			->join('aud_agencias', 'aud_agencias.idAgencia = aud_campanias.idAgencia', 'left')
			->add_column('detalleCampanna', '<a id="btnDetalle" href="javascript:;" class="btnAccGrid btnAccA" onclick="$_detalleCircuitoProxyShow($1)">Ingresar</a>', 'aud_campanias.idCampania')
			->add_column('mappingCampanna', '<input type="checkbox" id="$1" name="$1" value=$1 class="chkClassCampania" onclick="$_selectCampanna($1)">', 'aud_campanias.idCampania');

	if($_REQUEST['chkMesAnno'] == 'on') {
		if($_REQUEST['txtMesAnnoDesde'] != "") {
			$mesAnnoDesde = substr($_REQUEST['txtMesAnnoDesde'], -4) . '-' . substr($_REQUEST['txtMesAnnoDesde'],0 ,2) . '-' . '01';
			$datatables->where('aud_campanias.fecha_Inicio >=\''.$mesAnnoDesde.'\'');
		}
		if($_REQUEST['txtMesAnnoHasta'] != "") {
			$mesAnnoHasta = substr($_REQUEST['txtMesAnnoHasta'], -4) . '-' . substr($_REQUEST['txtMesAnnoHasta'],0 ,2) . '-' . '01';
			$datatables->where('aud_campanias.fecha_Inicio <=\''.$mesAnnoHasta.'\'');
		}
	}

	if($_REQUEST['emptyTable'])
		$datatables->where(' 1=0 ');
	else {
		$DB = NewADOConnection('mysqlt');
		$DB->Connect();
		$DB->Execute("SET NAMES utf8;");
		//$DB->debug=true;
		
		//Procesamos el Contrato del Usuario
		$rsContrato = $DB->Execute("SELECT * FROM contratos_auditoria WHERE idContrato = ".$_SESSION['idContratoAud']);
		while(!$rsContrato->EOF){
			$sqlWhereCampannas .= " (aud_campanias.idCampania = '".$rsContrato->fields('idCampanna')."') OR ";
			$rsContrato->MoveNext();
		}
		if(!empty($sqlWhereCampannas))
			$datatables->where("(".substr($sqlWhereCampannas,0,-3).")");
		else
			$datatables->where(' 1=0 ');
		
		if($_REQUEST['chkCampanna'] == 'on') {
			if($_REQUEST['jsonDataCampannas'] != "undefined" && $_REQUEST['jsonDataCampannas'] != '[]')
				$datatables->where('aud_campanias.idCampania IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataCampannas']), 1, -1).')');
		}
	}

	return $datatables->generate();
}

function searchInforme()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");

	$datatables = new Datatables();
	
	$datatables->from('aud_circuitos');
	$datatables->join('aud_circuitos_detalle', 'aud_circuitos_detalle.idCircuito = aud_circuitos.idCircuito', 'inner');
	
	if($_REQUEST['chkElementoInf'] == 'on') {
		$datatables->select('aud_elementos.descripcion descElemento');
		$datatables->join('aud_elementos', 'aud_elementos.idElemento = aud_circuitos.idElemento', 'inner');
		$datatables->groupby('aud_circuitos.idElemento');
		if($_REQUEST['jsonDataElementos'] != "undefined" && $_REQUEST['jsonDataElementos'] != '[]')
			$datatables->where('aud_elementos.idElemento IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataElementos']), 1, -1).')');
		$emptyFields = FALSE;
	}
	else {
		$datatables->select("'' blancoElemento");
	}
	
	if($_REQUEST['chkEVPInf'] == 'on') {
		$datatables->select('aud_empresas.descripcion descEVP');
		$datatables->join('aud_empresas', 'aud_empresas.idEmpresa = aud_circuitos.idEmpresa', 'inner');
		$datatables->groupby('aud_circuitos.idEmpresa');
		if($_REQUEST['jsonDataEVP'] != "undefined" && $_REQUEST['jsonDataEVP'] != '[]')
			$datatables->where('aud_circuitos.idEmpresa IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataEVP']), 1, -1).')');
		$emptyFields = FALSE;
	}
	else {
		$datatables->select("'' blancoEVP");
	}

	if($_REQUEST['chkProvinciaInf'] == 'on') {
		$datatables->select('aud_provincias.descripcion descProvincia');
		$datatables->join('aud_provincias', 'aud_provincias.idProvincia = aud_circuitos.idProvincia', 'inner');
		$datatables->groupby('aud_provincias.idProvincia');
		if($_REQUEST['jsonDataProvincia'] != "undefined" && $_REQUEST['jsonDataProvincia'] != '[]')
			$datatables->where('aud_circuitos.idProvincia IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataProvincia']), 1, -1).')');
		$emptyFields = FALSE;
	}
	else {
		$datatables->select("'' blancoProvincia");
	}
	
	if($_REQUEST['chkLocalidadInf'] == 'on') {
		$datatables->select('aud_localidades.descripcion descLocalidad');
		$datatables->join('aud_localidades', 'aud_localidades.idLocalidad = aud_circuitos.idLocalidad', 'inner');
		$datatables->groupby('aud_localidades.idLocalidad');
		if($_REQUEST['jsonDataLocalidad'] != "undefined" && $_REQUEST['jsonDataLocalidad'] != '[]')
			$datatables->where('aud_circuitos.idLocalidad IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataLocalidad']), 1, -1).')');
		$emptyFields = FALSE;
	}
	else {
		$datatables->select("'' blancoLocalidad");
	}
	
	if($_REQUEST['chkMesAnnoInf'] == 'on') {
		$datatables->select("aud_circuitos.fecha_inicio, aud_circuitos.fecha_fin, aud_circuitos.fecha_inicio_control");
		$datatables->edit_column('aud_circuitos.fecha_inicio','$1','formatoFecha(aud_circuitos.fecha_inicio)') // php functions
				   ->edit_column('aud_circuitos.fecha_fin','$1','formatoFecha(aud_circuitos.fecha_fin)') // php functions
				   ->edit_column('aud_circuitos.fecha_inicio_control','$1','formatoFecha(aud_circuitos.fecha_inicio_control)'); // php functions
				   
		if($_REQUEST['txtMesAnnoDesdeInf'] != "") {
			$mesAnnoDesde = substr($_REQUEST['txtMesAnnoDesdeInf'], -4) . '-' . substr($_REQUEST['txtMesAnnoDesdeInf'],0 ,2) . '-' . '01';
			$datatables->where('aud_circuitos.fecha_inicio >=\''.$mesAnnoDesde.'\'');
		}
		if($_REQUEST['txtMesAnnoHastaInf'] != "") {
			$mesAnnoHasta = substr($_REQUEST['txtMesAnnoHastaInf'], -4) . '-' . substr($_REQUEST['txtMesAnnoHastaInf'],0 ,2) . '-' . '31';
			$datatables->where('aud_circuitos.fecha_inicio <=\''.$mesAnnoHasta.'\'');
		}
		$emptyFields = FALSE;
	}
	else {
		$datatables->select("'' blancoFechaDesde, '' blancoFechaHasta, '' blancoFechaControl");
	}
	
	if($_REQUEST['chkFrecuenciaInf'] == 'on') {
		if($_REQUEST['jsonDataFrecuencia'] != "undefined" && $_REQUEST['jsonDataFrecuencia'] != '[]') {
			if(in_array($primerControYControlUnico, json_decode($_REQUEST['jsonDataFrecuencia']))) {
				$datatables->select('aud_frecuenciacontroles.descripcion descFrecuencia');
				$datatables->join('aud_frecuenciacontroles', 'aud_frecuenciacontroles.idFrecuencia = '.$primerControYControlUnico, 'inner');
				$datatables->where('aud_circuitos.idFrecuencia IN ('.$controlUnico. ', '.$primerControl.')');
			}
			else {
				$datatables->select('aud_frecuenciacontroles.descripcion descFrecuencia');
				$datatables->join('aud_frecuenciacontroles', 'aud_frecuenciacontroles.idFrecuencia = aud_circuitos.idFrecuencia', 'inner');
				$datatables->where('aud_circuitos.idFrecuencia IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataFrecuencia']), 1, -1).')');
				$datatables->groupby('aud_frecuenciacontroles.idFrecuencia');
			}
		}
		$emptyFields = FALSE;
	}
	else {
		$datatables->select("'' blancoFrecuencia");
	}
	
	if($emptyFields) {
		unset($_GET['iSortingCols']);
		unset($_POST['iSortingCols']);
	}

	if($_REQUEST['emptyTable'])
		$datatables->where(' 1=0 ');
	else {
		$DB = NewADOConnection('mysqlt');
		$DB->Connect();
		$DB->Execute("SET NAMES utf8;");
		//$DB->debug=true;
		
		//Procesamos el Contrato del Usuario
		$rsContrato = $DB->Execute("SELECT * FROM contratos_auditoria WHERE idContrato = ".$_SESSION['idContratoAud']);
		while(!$rsContrato->EOF){
			$sqlWhereCampannas .= " (aud_circuitos.idCampania = '".$rsContrato->fields('idCampanna')."') OR ";
			$rsContrato->MoveNext();
		}
		$datatables->where("(".substr($sqlWhereCampannas,0,-3).")");
		
		if($_REQUEST['chkCampannaInf'] == 'on') {
			if($_REQUEST['jsonDataCampannas'] != "undefined" && $_REQUEST['jsonDataCampannas'] != '[]')
				$datatables->where('aud_circuitos.idCampania IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataCampannas']), 1, -1).')');
		}
		
		$datatables->select('SUM(aud_circuitos_detalle.cantidad_BE)');
		$datatables->select('SUM(aud_circuitos_detalle.cantidad_SA)');
		$datatables->select('SUM(aud_circuitos_detalle.cantidad_CD)');
		$datatables->select('SUM(aud_circuitos_detalle.cantidad_BE) + SUM(aud_circuitos_detalle.cantidad_CD)');
	}

	return $datatables->generate();
}

function getCampannasHab()
{
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$strSQL = "SELECT * FROM aud_campanias WHERE idCampania IN (SELECT idCampanna FROM contratos_auditoria WHERE idContrato = ".$_SESSION['idContratoAud'].")";
	$rsCampannasHab = $DB->Execute($strSQL);
	
	$i=0;
	while(!$rsCampannasHab->EOF){
		$arrCampannasHab->data[$i++] = $rsCampannasHab->fields(0);
		$rsCampannasHab->MoveNext();
	}
	
	return json_encode($arrCampannasHab->data);
}

function searchCampannaCircuito()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");

	$datatables = new Datatables();
	
	$datatables
			->select('aud_campanias.descripcion descCampanna, aud_circuitos.fecha_inicio, aud_circuitos.fecha_fin, aud_empresas.descripcion descEmpresa, aud_elementos.descripcion descElemento, aud_circuitos.idCircuito, aud_provincias.descripcion descProvincia, aud_localidades.descripcion descLocalidad, cantidad_Pauta')
			->from('aud_circuitos')
			->join('aud_elementos', 'aud_elementos.idElemento = aud_circuitos.idElemento', 'inner')
			->join('aud_empresas', 'aud_empresas.idEmpresa = aud_circuitos.idEmpresa', 'inner')
			->join('aud_campanias', 'aud_campanias.idCampania = aud_circuitos.idCampania', 'inner')
			->join('aud_provincias', 'aud_provincias.idProvincia = aud_circuitos.idProvincia', 'inner')
			->join('aud_localidades', 'aud_localidades.idLocalidad = aud_circuitos.idLocalidad', 'inner')
			->edit_column('aud_circuitos.fecha_inicio','$1','formatoFecha(aud_circuitos.fecha_inicio)') // php functions
			->edit_column('aud_circuitos.fecha_fin','$1','formatoFecha(aud_circuitos.fecha_fin)') // php functions
			->where('aud_circuitos.idCampania = '.$_REQUEST['idCampanna'])
			->add_column('detalleCircuito', '<a id="btnDetalle" href="javascript:;" class="btnAccGrid btnAccA" onclick="$_detalleCircuitoDetalleProxyShow($1)">Ingresar</a>', 'aud_circuitos.idCircuito')
			->add_column('mappingCircuito', '<input type="checkbox" id="$1" name="$1" value=$1 class="chkClassCircuito" onclick="$_selectCircuito($1)">', 'aud_circuitos.idCircuito');
		
		$datatables->where("aud_circuitos.idCircuito IN (SELECT idCircuito FROM aud_circuitos_detalle)");
		$datatables->where("aud_circuitos.idFrecuencia IN ($primerControl, $controlUnico)");
			
	return $datatables->generate();
}

function searchCampannaCircuitoDetalle()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");

	$datatables = new Datatables();
	
	$datatables
			->select('aud_circuitos_detalle.idCircuito, aud_circuitos_detalle.Orden, aud_ubicaciones.direccion descDireccion, ae1.descripcion descBE, cantidad_BE, ae2.descripcion descCD, cantidad_CD, ae3.descripcion descSA, cantidad_SA')
			->from('aud_circuitos_detalle')
			->join('aud_ubicaciones', 'aud_ubicaciones.idUbicacion = aud_circuitos_detalle.idUbicacion', 'inner')
			->join('aud_estados ae1', 'ae1.idEstado = aud_circuitos_detalle.estado_BE', 'left')
			->join('aud_estados ae2', 'ae2.idEstado = aud_circuitos_detalle.estado_CD', 'left')
			->join('aud_estados ae3', 'ae3.idEstado = aud_circuitos_detalle.estado_SA', 'left')
			->where('aud_circuitos_detalle.idCircuito = '.$_REQUEST['idCircuito'])
			->add_column('imagen', '<a id="btnImagen" href="javascript:;" class="btnAccGrid btnAccA" onclick="$_imagenCircuitoProxyShow($1, $2)">Imagenes</a>', 'aud_circuitos_detalle.idCircuito,aud_circuitos_detalle.Orden');
			
	return $datatables->generate();
}


function auditoriaCampannaMarketsMap()
{
	require("includes/constants.php");
	
	try {
	
		$DB = NewADOConnection('mysqlt');
		$DB->Connect();
		$DB->Execute("SET NAMES utf8;");
		//$DB->debug=true;
		
		$strSQL = "SELECT DISTINCT au.*, acd.idCircuito, acd.Orden, ac.idCampania, ae.descripcion AS descEmpresa, ael.descripcion AS descElemento, ap.descripcion AS descProvincia FROM aud_ubicaciones au
					INNER JOIN aud_circuitos_detalle acd ON au.idUbicacion = acd.idUbicacion
					INNER JOIN aud_circuitos ac ON acd.idCircuito = ac.idCircuito
					INNER JOIN aud_empresas ae ON ae.idEmpresa = ac.idEmpresa
					INNER JOIN aud_elementos ael ON ael.idElemento = ac.idElemento
					INNER JOIN aud_provincias ap ON ap.idProvincia = ac.idProvincia
					WHERE 
						ac.idCampania IN (".substr(str_replace('"', "'", $_REQUEST['joCampannasSelect']), 1, -1).")
						AND (au.geo_latitud <> 0 AND au.geo_longitud <> 0)
					ORDER BY ac.idCampania"; 

		$rsUbicaciones = $DB->Execute($strSQL);
		
		$i=0;
		$idCampaniaActual="";
		$imgCampania = array();
		while(!$rsUbicaciones->EOF)
		{
			if($rsUbicaciones->fields("idCampania") != $idCampaniaActual) {
				$randoColorIcon = random_color();
				
				$url = 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|'.$randoColorIcon;
				$imgIcon = 'images/icons/'.$randoColorIcon.'.png';
				file_put_contents($imgIcon, file_get_contents($url));
				
				array_push($imgCampania, array("id" => $rsUbicaciones->fields("idCampania"), "imagen" => $imgIcon));

				$idCampaniaActual = $rsUbicaciones->fields("idCampania");
			}

			//Busco si tiene Foto
			$camarita = "";
			$circuitoOrden = substr('0000'.$rsUbicaciones->fields("Orden"),-4);
			$dirImages = 'images/fotos_auditoria/'.$rsUbicaciones->fields("idCampania").'/'.$rsUbicaciones->fields("idCircuito");
			if(file_exists($dirImages)) {
				if ($filesFotosAuditoria = opendir($dirImages)) {		
					while (false !== ($image = readdir($filesFotosAuditoria))) {
						if($image != "." && $image != "..") {
							$extn = explode('.', $image); 
				 		    $extn = array_pop($extn); 
							if(strpos($image, $circuitoOrden) !== false) {
								$camarita = '<br/><br/><img style="cursor:pointer;" src="images/camara.png" onclick="$_imagenCircuitoProxyShow(\''.$rsUbicaciones->fields("idCircuito").'\',\''.$rsUbicaciones->fields("Orden").'\')">';
								break;
							}
						}
			    	}
				}
			}

			$arrJSON->markers[$i]['latitude'] = floatval($rsUbicaciones->fields("geo_latitud"));
			$arrJSON->markers[$i]['longitude'] = floatval($rsUbicaciones->fields("geo_longitud"));
			$arrJSON->markers[$i]['html'] = '<h7>' . $rsUbicaciones->fields("direccion") . '</h7>' . '<br><h8>' . $rsUbicaciones->fields("descEmpresa") . '<br>' . $rsUbicaciones->fields("descElemento") . '<br>' . $rsUbicaciones->fields("descProvincia") . '</h8>'.$camarita;
			$arrJSON->markers[$i]['icon'] = array("image" => $imgIcon, "id" => array($rsUbicaciones->fields("idCircuito"), $rsUbicaciones->fields("Orden")), "shadow" => false, "iconsize" => array(21,34), "iconanchor" => array(9,34));
			
			$rsUbicaciones->MoveNext();
			$i++;
		}
		
		$arrJSON->imagesMapa = $imgCampania;
		$arrJSON->status = "OK";

		return json_encode($arrJSON);
		
	} catch (Exception $e) {
		$arrJSON->status = "ERR";
		$arrJSON->msg = $e->getMessage();
		return json_encode($arrJSON);
	}
}

function auditoriaCampannaDetalleMarketsMap()
{
	require("includes/constants.php");
	
	try {
	
		$DB = NewADOConnection('mysqlt');
		$DB->Connect();
		$DB->Execute("SET NAMES utf8;");
		//$DB->debug=true;
		
		$orderConsulta = 'ac.idEmpresa';
		if($_REQUEST['tipoFiltro'] == $porElemento) {
			$orderConsulta = 'ac.idElemento';
		}
		
		if($_REQUEST['tipoFiltro'] == $porCircuito) {
			$orderConsulta = 'CONCAT(ac.idEmpresa, ac.idElemento, ac.idCircuito)';
		}
		
		$strSQL = "SELECT DISTINCT $orderConsulta, au.direccion, au.geo_latitud, au.geo_longitud, ac.idCampania, acd.idCircuito, acd.Orden, ae.descripcion AS descEmpresa, ael.descripcion AS descElemento, ap.descripcion AS descProvincia FROM aud_ubicaciones au
					INNER JOIN aud_circuitos_detalle acd ON au.idUbicacion = acd.idUbicacion
					INNER JOIN aud_circuitos ac ON acd.idCircuito = ac.idCircuito
					INNER JOIN aud_elementos ael ON ac.idElemento = ael.idElemento
					INNER JOIN aud_empresas ae ON ae.idEmpresa = ac.idEmpresa
					INNER JOIN aud_provincias ap ON ap.idProvincia = ac.idProvincia
					WHERE 
						ac.idCircuito IN (".substr(str_replace('"', "'", $_REQUEST['joCircuitosSelect']), 1, -1).")
						AND (au.geo_latitud <> 0 AND au.geo_longitud <> 0)
						ORDER BY 1"; 

		$rsUbicaciones = $DB->Execute($strSQL);
		
		$i=0;
		$idOrdenActual="";
		$imgOrden = array();
		while(!$rsUbicaciones->EOF)
		{
			if($rsUbicaciones->fields(0) != $idOrdenActual) {
				$randoColorIcon = random_color();
				
				if(!file_exists('images/icons/'.$randoColorIcon.'.png')) {
					$url = 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|'.$randoColorIcon;
					$imgIcon = 'images/icons/'.$randoColorIcon.'.png';
					file_put_contents($imgIcon, file_get_contents($url));
				}
				else
					$imgIcon = 'images/icons/'.$randoColorIcon.'.png';
				
				array_push($imgOrden, array("id" => $rsUbicaciones->fields(0), "imagen" => $imgIcon));

				$idOrdenActual = $rsUbicaciones->fields(0);
			}
			
			//Busco si tiene Foto
			$camarita = "";
			$circuitoOrden = substr('0000'.$rsUbicaciones->fields("Orden"),-4);
			$dirImages = 'images/fotos_auditoria/'.$rsUbicaciones->fields("idCampania").'/'.$rsUbicaciones->fields("idCircuito");
			if(file_exists($dirImages)) {
				if ($filesFotosAuditoria = opendir($dirImages)) {		
					while (false !== ($image = readdir($filesFotosAuditoria))) {
						if($image != "." && $image != "..") {
							$extn = explode('.', $image); 
				 		    $extn = array_pop($extn); 
							if(strpos($image, $circuitoOrden) !== false) {
								$camarita = '<br/><br/><img style="cursor:pointer;" src="images/camara.png" onclick="$_imagenCircuitoProxyShow(\''.$rsUbicaciones->fields("idCircuito").'\',\''.$rsUbicaciones->fields("Orden").'\')">';
								break;
							}
						}
			    	}
				}
			}
			
			$arrJSON->markers[$i]['latitude'] = floatval($rsUbicaciones->fields("geo_latitud"));
			$arrJSON->markers[$i]['longitude'] = floatval($rsUbicaciones->fields("geo_longitud"));
			$arrJSON->markers[$i]['html'] = '<h7>' . $rsUbicaciones->fields("direccion") . '</h7>' . '<br><h8>' . $rsUbicaciones->fields("descEmpresa") . '<br>' . $rsUbicaciones->fields("descElemento") . '<br>' . $rsUbicaciones->fields("descProvincia") . '</h8>'.$camarita;
			$arrJSON->markers[$i]['icon'] = array("image" => $imgIcon, "id" => array($rsUbicaciones->fields("idCircuito"), $rsUbicaciones->fields("Orden")), "shadow" => false, "iconsize" => array(21,34), "iconanchor" => array(9,34));
			
			$rsUbicaciones->MoveNext();
			$i++;
		}
		
		$arrJSON->imagesMapa = $imgOrden;
		$arrJSON->status = "OK";

		return json_encode($arrJSON);
		
	} catch (Exception $e) {
		$arrJSON->status = "ERR";
		$arrJSON->msg = $e->getMessage();
		return json_encode($arrJSON);
	}
}

function exportXLS()
{
	require("includes/constants.php");
		
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;

	$nombreArchivo = "Auditoria_";
	$innerJoins = "";
	$fieldsQuery = "  ";
	$groupbyQuery = "  ";
	$where = " 1=1 ";
	
	
	$arrayTituloCampos = array();
	$arrayValoresCampos = array();
	$arrayTipoDatosCampos = array();
	
	if($_REQUEST['chkElementoInf'] == 'on') {
		array_push($arrayTituloCampos, "Elementos");
		array_push($arrayValoresCampos, "descElementos");
		array_push($arrayTipoDatosCampos, "string");
		
		$fieldsQuery .= " aud_elementos.descripcion descElementos, ";
		$innerJoins .= " INNER JOIN aud_elementos ON aud_elementos.idElemento = aud_circuitos.idElemento";
		if($_REQUEST['jsonDataElementos'] != "undefined" && $_REQUEST['jsonDataElementos'] != '[]')
			$where .= " AND aud_elementos.idElemento IN (".substr(str_replace('"', "'", $_REQUEST['jsonDataElementos']), 1, -1).")";
		$groupbyQuery .= " aud_circuitos.idElemento, ";
	}
	
	if($_REQUEST['chkEVPInf'] == 'on') {
		array_push($arrayTituloCampos, "EVP");
		array_push($arrayValoresCampos, "descEVP");
		array_push($arrayTipoDatosCampos, "string");
		
		$fieldsQuery .= " aud_empresas.descripcion descEVP, ";
		$innerJoins .= " INNER JOIN aud_empresas ON aud_empresas.idEmpresa = aud_circuitos.idEmpresa";
		if($_REQUEST['jsonDataEVP'] != "undefined" && $_REQUEST['jsonDataEVP'] != '[]')
			$where .= " AND aud_empresas.idEmpresa IN (".substr(str_replace('"', "'", $_REQUEST['jsonDataEVP']), 1, -1).")";
		$groupbyQuery .= " aud_circuitos.idEmpresa, ";
	}
	
	if($_REQUEST['chkProvinciaInf'] == 'on') {
		array_push($arrayTituloCampos, "Provincia");
		array_push($arrayValoresCampos, "descProvincia");
		array_push($arrayTipoDatosCampos, "string");
		
		$fieldsQuery .= " aud_provincias.descripcion descProvincia, ";
		$innerJoins .= " INNER JOIN aud_provincias ON aud_provincias.idProvincia = aud_circuitos.idProvincia";
		if($_REQUEST['jsonDataProvincia'] != "undefined" && $_REQUEST['jsonDataProvincia'] != '[]')
			$where .= " AND aud_provincias.idProvincia IN (".substr(str_replace('"', "'", $_REQUEST['jsonDataProvincia']), 1, -1).")";
		$groupbyQuery .= " aud_circuitos.idProvincia, ";
	}
	
	if($_REQUEST['chkLocalidadInf'] == 'on') {
		array_push($arrayTituloCampos, "Localidad");
		array_push($arrayValoresCampos, "descLocalidad");
		array_push($arrayTipoDatosCampos, "string");
		
		$fieldsQuery .= " aud_localidades.descripcion descLocalidad, ";
		$innerJoins .= " INNER JOIN aud_localidades ON aud_localidades.idLocalidad = aud_circuitos.idLocalidad";
		if($_REQUEST['jsonDataLocalidad'] != "undefined" && $_REQUEST['jsonDataLocalidad'] != '[]')
			$where .= " AND aud_localidades.idLocalidad IN (".substr(str_replace('"', "'", $_REQUEST['jsonDataLocalidad']), 1, -1).")";
		$groupbyQuery .= " aud_circuitos.idLocalidad, ";
	}
	
	if($_REQUEST['chkFrecuenciaInf'] == 'on') {
		array_push($arrayTituloCampos, "Frecuencia");
		array_push($arrayValoresCampos, "descFrecuencia");
		array_push($arrayTipoDatosCampos, "string");
		if(in_array($primerControYControlUnico, json_decode($_REQUEST['jsonDataFrecuencia']))) {
			$fieldsQuery .= " aud_frecuenciacontroles.descripcion descFrecuencia, ";
			$innerJoins .= " INNER JOIN aud_frecuenciacontroles ON aud_frecuenciacontroles.idFrecuencia = ". $primerControYControlUnico;
			$where .= " AND aud_circuitos.idFrecuencia IN (".$controlUnico. ", ".$primerControl.")";
		}
		else {
			$fieldsQuery .= " aud_frecuenciacontroles.descripcion descFrecuencia, ";
			$innerJoins .= " INNER JOIN aud_frecuenciacontroles ON aud_frecuenciacontroles.idFrecuencia = aud_circuitos.idFrecuencia";
			if($_REQUEST['jsonDataFrecuencia'] != "undefined" && $_REQUEST['jsonDataFrecuencia'] != '[]')
				$where .= " AND aud_frecuenciacontroles.idFrecuencia IN (".substr(str_replace('"', "'", $_REQUEST['jsonDataFrecuencia']), 1, -1).")";
			$groupbyQuery .= " aud_circuitos.idFrecuencia, ";
		}
	}

	if($_REQUEST['chkMesAnnoInf'] == 'on') {
		array_push($arrayTituloCampos, "Fecha Inicio", "Fecha Fin", "Fecha Control");
		array_push($arrayValoresCampos, "fecha_inicio", "fecha_fin", "fecha_inicio_control");
		array_push($arrayTipoDatosCampos, "string", "string", "string");
		$fieldsQuery .= " aud_circuitos.fecha_inicio, aud_circuitos.fecha_fin, aud_circuitos.fecha_inicio_control, ";
		$groupbyQuery .= "  aud_circuitos.fecha_inicio, aud_circuitos.fecha_fin, aud_circuitos.fecha_inicio_control, ";

		if($_REQUEST['txtMesAnnoDesdeInf'] != "") {
			$mesAnnoDesde = substr($_REQUEST['txtMesAnnoDesdeInf'], -4) . '-' . substr($_REQUEST['txtMesAnnoDesdeInf'],0 ,2) . '-' . '01';
			$where .= ' AND aud_circuitos.fecha_inicio >=\''.$mesAnnoDesde.'\'';
		}
			
		if($_REQUEST['txtMesAnnoHasta'] != "") {
			$mesAnnoHasta = substr($_REQUEST['txtMesAnnoHastaInf'], -4) . '-' . substr($_REQUEST['txtMesAnnoHastaInf'],0 ,2) . '-' . '01';
			$where .= ' AND aud_circuitos.fecha_inicio <=\''.$mesAnnoHasta.'\'';
		}
	}
	
	array_push($arrayTituloCampos, "Cantidad OK");
	array_push($arrayValoresCampos, "sumaBE");
	array_push($arrayTipoDatosCampos, "string");
	$fieldsQuery .= "SUM(aud_circuitos_detalle.cantidad_BE) sumaBE,  ";
	
	array_push($arrayTituloCampos, "Cantidad SA");
	array_push($arrayValoresCampos, "sumaSA");
	array_push($arrayTipoDatosCampos, "string");
	$fieldsQuery .= "SUM(aud_circuitos_detalle.cantidad_SA) sumaSA,  ";
	
	array_push($arrayTituloCampos, "Cantidad CD");
	array_push($arrayValoresCampos, "sumaCD");
	array_push($arrayTipoDatosCampos, "string");
	$fieldsQuery .= "SUM(aud_circuitos_detalle.cantidad_CD) sumaCD,  ";
	
	array_push($arrayTituloCampos, "Total");
	array_push($arrayValoresCampos, "sumaTotal");
	array_push($arrayTipoDatosCampos, "string");
	$fieldsQuery .= "SUM(aud_circuitos_detalle.cantidad_BE) + SUM(aud_circuitos_detalle.cantidad_CD) sumaTotal  ";
	
	$fieldsQuery = substr($fieldsQuery, 0, -2);
	$groupbyQuery = substr($groupbyQuery, 0, -2);
			
	//Procesamos el Contrato del Usuario
	$rsContrato = $DB->Execute("SELECT * FROM contratos_auditoria WHERE idContrato = ".$_SESSION['idContratoAud']);
	if(!$rsContrato->EOF) {
		while(!$rsContrato->EOF){
			$sqlWhereRubros .= " (aud_circuitos.idCampania = ".$rsContrato->fields('idCampanna').") OR ";
			$rsContrato->MoveNext();
		}
		$sqlWhereRubros = " AND (".substr($sqlWhereRubros,0,-3).")";
		
		if($_REQUEST['jsonDataCampannas'] != "undefined" && $_REQUEST['jsonDataCampannas'] != '[]')
			$where .= ' AND aud_circuitos.idCampania IN ('.substr(str_replace('"', "'", $_REQUEST['jsonDataCampannas']), 1, -1).')';
		
	}
	else {
		$sqlWhereRubros = "";
	}
	
	$query = "SELECT $fieldsQuery FROM aud_circuitos 
				INNER JOIN aud_circuitos_detalle ON aud_circuitos.idCircuito = aud_circuitos_detalle.idCircuito
				$innerJoins WHERE $where $sqlWhereRubros";
	if($groupbyQuery)
		$query .= "GROUP BY $groupbyQuery";

	require_once("includes/excel/excel_write/class.writeexcel_workbook.inc.php");
	require_once("includes/excel/excel_write/class.writeexcel_worksheet.inc.php");
	
	$fname = tempnam("tmp", $nombreArchivo . date('Ymd') . ".xls");
	$workbook = new writeexcel_workbook($fname);
	$workbook->set_tempdir("tmp");
	$fecha = date('d')."-".date('m')."-".date('Y');
	$worksheet =& $workbook->addworksheet("Reporte");
	
	$rs = $DB->Execute($query);
	
	$header =& $workbook->addformat();
	$header->set_bold();
	$header->set_size(10);
	$header->set_bg_color('silver');
	
	for($id = 0; $id < count($arrayTituloCampos) ; $id++) {
		$worksheet->write(0, $id, $arrayTituloCampos[$id], $header);
	}

	$i=1;

	while (!$rs->EOF)
	{
		for($ide=0 ; $ide < count($arrayValoresCampos); $ide++) {
			$worksheet->write($i, $ide, trim($rs->fields($arrayValoresCampos[$ide])));
		}		

		$i++;
		$rs->MoveNext();
	}
	
	$workbook->close();

	if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
	{
		header("Pragma: public");
		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	}
	header("Content-Length: ".@filesize($fname));
	header("Content-Type: application/x-msexcel; name=\"".$nombreArchivo."" . date('Ymd') . ".xls\"");
	header("Content-Disposition: inline; filename=\"".$nombreArchivo."" . date('Ymd') . ".xls\"");
	$fh=fopen($fname, "rb");
	fpassthru($fh);
	unlink($fname);
}

function marcarCircuitos()
{
	
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$strSQL = "SELECT * FROM aud_circuitos WHERE idCampania = " . $_REQUEST['idCampanna']." 
			 		AND idCircuito IN (SELECT idCircuito FROM aud_circuitos_detalle)
			 		AND idFrecuencia IN ($primerControl, $controlUnico)";

	$rsCircuitos = $DB->Execute($strSQL);
	
	$arrJSON = array();
	$arrCircuitos = json_decode($_REQUEST['joCircuitosSelect']);
	
	while(!$rsCircuitos->EOF)
	{
		if(!in_array($rsCircuitos->fields("idCircuito"), $arrCircuitos)) 
			array_push($arrJSON, $rsCircuitos->fields("idCircuito"));
		$rsCircuitos->MoveNext();
	}
	
	return json_encode($arrJSON);
}

function fotosAuditoriaShow()
{
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$strSQL = "SELECT * FROM aud_circuitos WHERE idCircuito = " . $_REQUEST['idCircuito'];
	$rsCampanna = $DB->Execute($strSQL);
	
	$idCampanna = $rsCampanna->fields('idCampania');
	$idCircuito = $_REQUEST['idCircuito'];
	$circuitoOrden = substr('0000'.$_REQUEST['orden'],-4);
	
	$includedExtensions = array ('jpg', 'gif', 'png');

	$dirImages = 'images/fotos_auditoria/'.$idCampanna.'/'.$idCircuito;
	if(file_exists($dirImages)) {
		if ($filesFotosAuditoria = opendir($dirImages)) {		
			while (false !== ($image = readdir($filesFotosAuditoria))) {
				if($image != "." && $image != "..") {
					$extn = explode('.', $image); 
		 		    $extn = array_pop($extn); 
					if (in_array(strtolower($extn),$includedExtensions)) {
						if(strpos($image, $circuitoOrden) !== false) {
							$arrImages[] = array("image" => $dirImages."/".$image);
							$i++;
						}
					}
				}
	    	}
			//usort($arrImages, "cmpFileNameImages");
			return json_encode($arrImages);
		}
		else {
			return json_encode(array());
		}
	}
	else {
		return json_encode(array());
	}
}


switch($_REQUEST['actionOfForm'])
{
	case "searchCampanna":
		echo searchCampanna();
		break;
		
	case "searchInforme":
		echo searchInforme();
		break;
		
	case "searchCampannaCircuito":
		echo searchCampannaCircuito();
		break;
		
	case "searchCampannaCircuitoDetalle":
		echo searchCampannaCircuitoDetalle();
		break;
		
	case "getCampannasHab":
		echo getCampannasHab();
		break;
		
	case "auditoriaCampannaMarketsMap":
		echo auditoriaCampannaMarketsMap();
		break;
		
	case "auditoriaCampannaDetalleMarketsMap":
		echo auditoriaCampannaDetalleMarketsMap();
		break;
	
	case "marcarCircuitos":
		echo marcarCircuitos();
		break;
		
	case "fotosAuditoriaShow":
		echo fotosAuditoriaShow();
		break;
	
	case "exportXLS":
		echo exportXLS();
		break;
}
?>
